מבוא למדעי המחשב הרצאה 2: ראשונים בשפת C

Size: px
Start display at page:

Download "מבוא למדעי המחשב הרצאה 2: ראשונים בשפת C"

Transcription

1 מבוא למדעי המחשב צעדים הרצאה 2: ראשונים בשפת C מבוסס על שקפים שנערכו ע"י שי ארצי, גיתית רוקנשטיין ז"ל, איתן אביאור, סאהר אסמיר,מיכאל אלעד, רון קימל ודן רביב. עדכון אחרון: יחיאל קמחי, אוקטובר 2014

2 תוכנייה משתנים קבועים ומזהים טיפוסי מידע בסיסיים ביטויים ביטויים לוגיים 2 הרצאה מבוא למדעי המחשב. כל הזכויות שמורות 2

3 דוגמת תוכנית בסיס לדיון #include <stdio.h> #define MANY 100 int main() { int sum = 0; printf("please enter %d of values\n, MANY); for (int i = 0; i < MANY; ++i) { int num; if (scanf("%d", &num) < 1) { printf( Input Error (item %d)\n, i + 1); return 1; } sum += num; } printf("the sum of %d numbers is %d\n", MANY, sum); } return 0; 3

4 משתנים ומזהים משתנה :)variable( תא בזיכרון, שערכו עשוי להשתנות במהלך התכנית, ובו נשמרים נתונים הנחוצים עבור פעולת התכנית x מזהה :)identifier( נועד כדי לתת שם למשתנה, לטיפוס או לפונקציה. מזהה יכול להיות מורכב מאותיות, ספרות והתו '_' אך אינו יכול להתחיל בספרה. מומלץ לבחור מזהים בעלי משמעות. מזהים ארוכים מדי פוגעים בקריאות. תוכן התא כתובת בזיכרון מזהה gsa = tg * hg * factor; 4

5 משתנים ומזהים משתנה :)variable( תא בזיכרון, שערכו עשוי להשתנות במהלך התכנית, ובו נשמרים נתונים הנחוצים עבור פעולת התכנית x מזהה :)identifier( נועד כדי לתת שם למשתנה, לטיפוס או לפונקציה. מזהה יכול להיות מורכב מאותיות, ספרות והתו '_' אך אינו יכול להתחיל בספרה. מומלץ לבחור מזהים בעלי משמעות. מזהים ארוכים מדי פוגעים בקריאות. תוכן התא כתובת בזיכרון מזהה grade_of_semester_a = test_grade * hw_grade * factor; 5

6 קבועים - Constants int main() { int num_of_students; double failure_rate; char success_sign, failure_sign;... num_of_students = 600; success_sign = '+'; failure_sign = 'F'; בפקודות שמשמאל מופיעים קבועי שלמים, קבועי ממשיים וקבועי תווים. מלים שמורות בסגול משמעותן קבועה! } if (failure_rate > 0.25)

7 בסיס אוקטלי (Octal) = 3 * = 26 קבועי מספרים - שלמים ו"ממשיים" דוגמאות לקבועים שלמים: x1B7 1 6 בסיס הקסדצימלי (Hexadecimal) = 1 * B * = 439 דוגמאות לקבועים ממשיים: e+9-2E7 2e-7 = 2 * 10-7 הקבוע 2.0 מיוצג בזיכרון באופן שונה מהקבוע 2 7

8 קבועי תו ומחרוזת סדרת תווים הנתונה בתוך " " נקראת קבוע מחרוזת.)string( בתוך המחרוזת, מאבדים המילים והתווים את המשמעות שיש להם מחוץ למחרוזת. למשל: לא מתבצעת פעולת חיבור לא גורם לסיום התכנית 'a' הינו קבוע תו. "a" הינו קבוע מחרוזת. מה ההבדל ביניהם? קבועי תו מיוחדים מעבר שורה גרש גרשיים סוף מחרוזת )רשימה חלקית(: "a = b + c"; printf("return 1"); '\n' '\'' '\"' '\0' 8

9 הגדרת קבועים סימבוליים ע"י #define ההוראה הבאה גורמת לכך שבשלב ה- preprocessing המופעים של MAX_SIZE בסדרת התווים מופעים של MAX_SIZE בתוך מחרוזת אינם מוחלפים. שימו לב: MAX_SIZE איננו משתנה ולא מוקצה עבורו זיכרון. סיבות לשימוש בהגדרה זו: שמות משמעותיים תורמים לקריאות התכנית יוחלפו כל הגדרת קבוע PI תורמת לקריאות התכנית )וחוסכת הקלדות חוזרות של מספר ארוך(: הגדרת הקבוע MAX_SIZE לעיל מאפשרת, באמצעות שינוי בודד, להפוך תכנית המטפלת ב נתונים לתכנית המטפלת ב נתונים. דוגמה נוספת: #define MANY 100 #define MAX_GRADE 100 #define PI #define MAX_SIZE 1000 <ערך שלילי> #define EOF EOF מחזירה scanf בעת כישלון טוטאלי 9

10 תוכנייה משתנים קבועים ומזהים טיפוסי מידע בסיסיים ביטויים ביטויים לוגיים 10

11 טיפוסי משתנים וקבועים בשפת C בדומה לקבועים, גם למשתנים טיפוסים שונים. יש להגדיר משתנים לפני שנעשה בהם שימוש. ההגדרה הינה הוראה לקומפיילר: להקצות תא בזיכרון בגודל המתאים. לקרוא לו בשם הנתון. לפרש את תוכנו לפי הטיפוס הנתון. ניתן להוסיף גם אתחול. int num, sum; double weight = 0.0; char digit = '4'; טיפוס המשתנה קובע את גודל תא הזיכרון שמוקצה עבורו, כיצד מפרשים את הסדרה הבינארית השמורה בו ואת הפעולות אותן ניתן לבצע עליו. 11

12 הטיפוסים השלמים הטיפוס הבסיסי הינו.int כל קבוע שלם הינו מטיפוס,int אלא אם מסומן אחרת..int אינה קובעת את המקום המוקצה לייצוג ערך מטיפוס ANSI-C במערכות הנפוצות כיום, מוקצים בדרך כלל 4 בתים. מציאת גודל של טיפוס/עצם גודלו של int קובע את תחום הערכים השלמים שניתן לייצג בו : -1 +1,,-2,-1,0,1,, )בד"כ גם 2 בתים bit( :) ,,-2,-1,0,1,, )בד"כ גם 4 בתים bit( :) = 32768, 2 31 = )-2 15 )-2 31 int b = 3; int a = sizeof (int), c = sizeof b; התחום המדויק תלוי גם בשיטת הייצוג של ערכים שליליים, מעבר להיותה בינארית 12

13 הטיפוסים השלמים - המשך טיפוסים שלמים נוספים:.char,short, long מבחינת הגדלים )מספר הבתים שכל טיפוס תופס( מתקיים תמיד: 1 = char short int long על ידי הוספת המילה השמורה unsigned לפני שמות הטיפוסים השלמים נוותר על ייצוג המספרים השליליים ונכפיל את תחום המספרים החיובים הניתנים לייצוג. לדוגמה: int )נניח 4 בתים(: -2 31,,-2,-1,0,1,, גודל :unsigned int גודל 0,1,, קבועים המסופקים ע"י המהדר גודל גודל )דוגמות מתוך :)<limits.h> INT_MIN, INT_MAX, UINT_MAX 13

14 ייצוג תווים קבועי תו כגון 'A' 'n\' '0' 'a' הינם מטיפוס שלם. קיימות טבלאות ידועות המשייכות לכל תו ערך שלם. הנפוצה ביניהן היא טבלת,ASCII על-פיה: \ A B... a b... DEL משתנה מטיפוס,char שגודלו בית בודד, מספיק על-מנת לשמור את כל הערכים המופיעים בטבלת.ASCII ההשמות הבאות שקולות: במחשבים בעלי קידוד אסקי char letter = 'd'; char letter = 100; 14

15 טבלת ה- ASCII : המחשה #include <stdio.h> #include <limits.h> RUN int main() { int i; { for (i = 0; i < UCHAR_MAX; i++){ char val = i; // Redundant printf("%d: %c ---> %d\n", i, i, val); } return 0; See the complete table in 15

16 הטיפוסים ה"ממשיים" FP( או "נקודה צפה"( הטיפוס הבסיסי הינו.double קבועים ממשיים הינם מטיפוס,double אלא אם מסומן אחרת. טיפוסים ממשים נוספים: גודל.float, long double מתקיים: גודל גודל float double long double גודל נפוץ עבור double הוא 8 בתים ועבור 4 float בתים. המספרים הממשיים מיוצגים בשיטת הנקודה הצפה Point(.)Floating ייצוג מספרים ממשיים במחשב הינו מקורב. גודל הטיפוס יקבע את תחום המספרים המיוצגים וכן את רמת הדיוק. printf("%g\n", ); e-17 16

17 ייצוג בשיטת הנקודה הצפה המספרים בנק' צפה מיוצגים במחשב כשברים בינאריים: sign exponent mantissa s 1 m 2 e מספרים שלמים ושברים שמנתם חזקה של 2 מיוצגים במדויק. שברים אחרים מיוצגים במקורב כאשר טיפוס מיוצג על-ידי יותר ס"ביות, היתרה מגדילה את התחום של ה- mantissa ו/או ה- exponent )וכתוצאה גדל הדיוק ו/או הטווח(. דיוק מובטח מזערי בספרות עשרוניות :(FLT_DIG, DBL_DIG in <float.h>) float => 6, double => 10, long double => 10 17

18 האופרטור sizeof sizeof (object) האופרטור sizeof מחזיר את מספר הבתים הדרוש כדי לאחסן את object בזיכרון. כאשר object הינו: שם של טיפוס.)type( או ביטוי.)expression( Show Show RUN RUN 18

19 המרת טיפוסים מפורשת )casting( להמרת טיפוסים מפורשת קוראים.casting אם exp הוא ביטוי מטיפוס int שערכו 1, אזי ערך הביטוי double)exp )הוא 1.0 וטיפוסו הוא.double לאופרטור ההמרה יש קדימות גבוהה יותר מ +, -, *, /. int i = 1, j = 2; double x; דוגמאות: x = i / j; x = (double)i / j; x = i / (double)j; x = (double)(i / j);

20 תוכנייה משתנים קבועים ומזהים טיפוסי מידע בסיסיים ביטויים ביטויים לוגיים 20

21 ביטויים )expressions( לכל ביטוי יש טיפוס ויש ערך. ביטוי הינו צירוף בעל משמעות של קבועים, משתנים ואופרטורים. לדוגמה: ביטויים לפעמים מורכבים מתתי-ביטויים. שימו לב לסוגים השונים של פעולות שיכולות להרכיב ביטוי ++i -x a * b a == b a < 0? a : a 7 x x = 3 + y (x > 0) && (x < 70) x++ found? x : y )unary )binary )ternary חד-מקומית דו-מקומית תלת-מקומית )אונארית )בינארית )טרנארית 21

22 הטיפוס של ביטוי חשבוני פעולות חשבון המתבצעות על ערכים מאותו טיפוס מובילות לתוצאות מאותו הטיפוס. אם בביטוי מעורבים משתנים/קבועים מטיפוסים שונים, מתבצעת המרה אוטומטית )conversion/promotion( של הערכים לטיפוס הכללי יותר. char short * int long float double לא להשתמש ב- float למשל: char c; int i; c + i; (int)c + i; 22

23 פעולות חשבון )וחילוק בשלמים( פעולות החשבון: עדיפות לכפל/חילוק על פני חיבור/חיסור קיבוציות )צרופיות )associativity משמאל לימין כמו הרוב המכריע של הפעולות מקרה מפתיע: תוצאת חלוקה בשלמים היא מספר שלם. עבור מונה )מחולק( ומכנה )מחלק( חיוביים: a / b is a : b a % b is a a : b * b a / b * b + a % b is a החלק השלם: השארית: מתקיים: מה קורה כשיש מספרים שליליים? / ±5 ±11 לפי שיטת השארית a b

24 פעולות השמה פעולת ה ש מ ה Operation( )Assignment מעתיקה את ערכו של הביטוי בצד הימני אל המקום אשר מצוין בביטוי שבצד השמאלי. שימו לב! בשפת = C הוא אופרטור ההשמה =( אינו מציין השוואה(. הביטוי בצד השמאלי חייב לציין מקום ואילו הביטוי מימין מציין ערך. למשל, בביטוי :z = y הביטוי z הנמצא בצד שמאל מציין את המקום )המשתנה עצמו( z. הביטוי y הנמצא בצד ימין מציין את ערכו הנוכחי של המשתנה y. האסוציאטיביות של אופרטורי השמה היא מימין לשמאל! לדוגמה, נאפס שלושה משתנים בביטוי אחד: a = b = c = 0 ביטוי השמה: טיפוסו ערכו כטיפוס העצם משמאל כערך החדש של העצם משמאל 24

25 פעולות השמה - המשך כאשר הטיפוס של הערך המושם שונה מזה של המקום אליו מתבצעת ההשמה, נדרשת המרה. שימו לב שלפעמים המרות כאלו גורמות לאובדן אינפורמציה )אם ממירים לטיפוס "קטן" יותר(. double z; int x, y = 4; x = y * 3.6; z = y / 5; z = y / 5.0; 14.4 double int 0 double int double 0.0 double 0.8 קיימת בשפת C פעולת השמה מקוצרת עבור כל: % / * - + פעולת חשבון: >> << ^ & פעולת ס"ביות: 25

26 פעולות קידום ונסיגה )Decrement( קיימים קיצורים לפעולות קידום )Increment( ונסיגה ב- C x++ x += 1 x = x x x += 1 x = x + 1 x-- x -= 1 x = x x x -= 1 x = x - 1 x = 5; y = ++x; z = x++; x y z 5 6 7? 6 6?? 6 כאשר פעולת הקידום או הנסיגה בצד שמאל - ערך הביטוי כולו כערכו לאחר השינוי בצד ימין - ערך הביטוי כולו כערכו לפני השינוי 26

27 קדימות טבלת קדימויות ואסוציאטיביות )חלקית( סוג הפעולה סימן הפעולה אסוציאטיביות ( ) סוגריים משמאל לימין פעולות אונאריות מימין לשמאל * / % פעולות כפל וחילוק משמאל לימין + - פעולות חיבור וחיסור משמאל לימין פעולות השמה %= /= *= -= += = מימין לשמאל 9 9 כיצד מחושב הביטוי הבא? )נניח 9=z( 45 5 מה הערך של z? x = y = 4 + z++ * 5 / (2 + 7)

28 המרת טיפוסים מפורשת )casting( להמרת טיפוסים מפורשת קוראים.casting אם exp הוא ביטוי מטיפוס int שערכו 1, אזי ערך הביטוי double)exp )הוא 1.0 וטיפוסו הוא.double לאופרטור ההמרה יש קדימות גבוהה יותר מ +, -, *, /. int i = 1, j = 2; double x; דוגמאות: x = i / j; x = (double)i / j; x = i / (double)j; x = (double)(i / j);

29 דוגמה - המרת טמפרטורה B c F c T Temperature F Freezing point of water B Boiling point of water Increment above F T C F f B f T F 29

30 דוגמה - המרת טמפרטורה T Temperature F Freezing point of water B Boiling point of water Increment above F T c F c B c F c T c T c = = = = T f T f F f B f F f T f T f = T c 100 (212 32)

31 תוכנית להמרה מ- F ל- C #include <stdio.h> RUN #define CEL_BOIL 100 #define FAHR_FREEZE 32 #define FAHR_BOIL 212 int main() { int cel_temp, fahr_temp; } printf("fahrenheit temperature: "); scanf("%d", &fahr_temp); cel_temp = Bug! )חלוקה בשלמים( (fahr_temp - FAHR_FREEZE) / (FAHR_BOIL - FAHR_FREEZE) * CEL_BOIL; printf("%d\370f = %d\370c\n", fahr_temp, cel_temp); return 0; 31

32 תוכנית להמרה מ- F ל- C #include 150 <stdio.h> RUN #define CEL_BOIL #define FAHR_FREEZE 32 #define FAHR_BOIL 212 int main() { 0 int cel_temp, fahr_temp; } 50 printf("fahrenheit -50 temperature: "); scanf("%d", &fahr_temp); cel_temp = Bug! )חלוקה בשלמים( (fahr_temp - FAHR_FREEZE) / (FAHR_BOIL - FAHR_FREEZE) * CEL_BOIL; printf("%d\370f = %d\370c\n", fahr_temp, cel_temp); return 0; 32

33 תוכנית להמרה מ- F ל- C ניסיון 2 #include <stdio.h> #define CEL_BOIL 100 #define FAHR_FREEZE 32 #define FAHR_BOIL 212 RUN int main() { double cel_temp, fahr_temp; } printf("fahrenheit temperature: "); scanf("%lf", &fahr_temp); cel_temp = מאיזה טיפוס כל ביטוי? (fahr_temp - FAHR_FREEZE) / (FAHR_BOIL - FAHR_FREEZE) * CEL_BOIL; printf("%.2f\370f = %.2f\370C\n", fahr_temp, cel_temp); return 0; 33

34 תוכנייה משתנים קבועים ומזהים טיפוסי מידע בסיסיים ביטויים ביטויים לוגיים 34

35 ביטויים וערכי אמת לכל ביטוי חשבוני שנכתוב ב- C ניתן גם לייחס ערך לוגי. ערכי אמת בסיסיים:.False, True בשפת C מייחסים לכל ביטוי ערך אמת באופן הבא: אם ערכו המספרי של הביטוי הינו 0 אזי ערך האמת שלו הינו.False אם ערכו המספרי של הביטוי שונה מ- 0 אזי ערך האמת שלו הינו.True int a = 3, b = -3, c = 1; a ערך אמת ביטוי True a+b a+=b a=2*c False False True 35

36 פעולות השוואה ששת אופרטורי ההשוואה: ==!= < <= > >= האסוציאטיביות של אופרטורי ההשוואה הינה משמאל לימין. int a = 0, b = -2; ערך אמת ערך שלם ביטוי a == b 0 F b == a 0 F b <= 8 1 T a!= b 1 T )*( הפתעה? 0 < b < 8 1 T a = b -2 T b = a 0 F 36

37 אופרטורים לוגיים מאפשרים ליצור ביטויים לוגיים מורכבים. לדוגמה: משמעות לוגית and שם האופרטור && (0 < b) && (b < 8) or! not exp1 exp2 exp1 && exp2 exp1 exp2!exp1!=0!= != !=

38 קדימות טבלת קדימויות ואסוציאטיביות סוג הפעולה סימן הפעולה אסוציאטיביות ( ) סוגריים משמאל לימין פעולות אונאריות (type) sizeof! מימין לשמאל * / % פעולות כפל וחילוק משמאל לימין + - פעולות חיבור וחיסור משמאל לימין < <= > >= פעולות יחס משמאל לימין ==!= פעולות השוואה משמאל לימין && פעולות "ו" )and( משמאל לימין פעולות "או" )or( משמאל לימין? : פעולת תנאי מימין לשמאל = += -= *= /= %= פעולות השמה מימין לשמאל כבר הוצג קודם 38

39 אופרטורים לוגיים חישוב עצל evaluation( )lazy האסוציאטיביות של האופרטורים הלוגיים הינה משמאל לימין. אופרטורים של השוואה קודמים לאופרטורים לוגיים. שימו לב! חישוב ערכם של ביטויים בהם מופיעים אופרטורים לוגיים נעצר ברגע שערך הביטוי אינו ניתן לשינוי. לדוגמה מתוך אתר היכרויות: is_match = (age > 21) && (eyes == BLUE hair == BLOND); אם הגיל מעל 21 והעיניים כחולות לא בודקים את צבע השיער אם הגיל אינו מעל 21 לא ממשיכים בבדיקה 39

40 bool תקן C99: בא לשכונה טיפוס חדש #include<stdio.h> #include<stdbool.h> int main() { bool drunk = true; bool has_driving_license = false; if(!has_driving_license drunk) printf("cannot drive!\n"); 40

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 משתנים שעור מס. 2 דרור טובי דר' כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 תפקיד המשתנים הצהרה על משתנה השמת ערך במשתנה int a, b, c; a = 1234; b = 99; c = a + b; משתנים מאפשרים לנו לשמור

More information

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions מבוא לתיכנות עם MATLAB 234127 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 2013 Based on slides of Dr. Eran Eden, Weizmann 2008 1 >>g = [89 91 80 98]; >>p

More information

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions מבוא לתיכנות עם MATLAB 23427 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 203 Based on slides of Dr. Eran Eden, Weizmann 2008 ביטויים לוגיים דוגמא: תקינות

More information

מבוא לתכנות ב- JAVA מעבדה 2

מבוא לתכנות ב- JAVA מעבדה 2 מבוא לתכנות ב- JAVA מעבדה 2 מה בתרגול טיפוסים פרימיטיביים המרות טיפוסים אופרטורים יחסיים ולוגיים משפט if-else בתרגול הקודם טיפוסים פרימיטביים לייצוג מספרים שלמים וממשיים ואופרטורים לפעולות בין מספרים.1

More information

קורס תכנות שיעור שני: שימוש במשתנים,

קורס תכנות שיעור שני: שימוש במשתנים, קורס תכנות שיעור שני: שימוש במשתנים, בקרת זרימה, לולאות 1 נושאי השיעור היום משתנים )variables( טיפוסי משתנים בשפת C הגדרת משתנים השמה למשתנים פעולות על משתנים קליטת ערכים מהמשתמש הדפסה משתנים בקרת זרימה

More information

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2 מבוא למדעי המחשב תירגול 2: לולאות, קלט, וטיפוסים 1 תוכנייה לולאת while קלט טיפוסי משתנים המרת טיפוסים טיפוס char 2 לולאת while 3 לולאת while קטע קוד מתבצע שוב ושוב כל עוד תנאי מתקיים int number = 40; while(number>0)

More information

מבוא למדעי המחשב תירגול 3:

מבוא למדעי המחשב תירגול 3: מבוא למדעי המחשב תירגול 3: לולאות, קלט, וטיפוסים תוכנייה לולאת while קלט טיפוסי משתנים המרת טיפוסים טיפוס char מבוא למדעי המחשב מ' - תירגול 3 2 לולאת while מבוא למדעי המחשב מ' - תירגול 3 3 לולאת while

More information

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions מבוא לתיכנות עם MATLAB 234127 Lecture 5: Boolean logic and Boolean expressions Written by Prof. Reuven Bar-Yehuda, Technion 2013 Based on slides of Dr. Eran Eden, Weizmann 2008 1 motivation Proper academic

More information

מבוא לתכנות תוכנית שעור מס. 1 1 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון.

מבוא לתכנות תוכנית שעור מס. 1 1 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון. מבוא לתכנות תוכנית ראשונה שעור מס. 1 דרור טובי דר' 1 מבוא לתכנות בשפת ++C C \ שלום!! מרצה ד"ר דרור טובי, drorto@ariel.ac.il שעות קבלה: יום ב, 10-12 טלפון )אריאל( 03 9076547 אתר הקורס: http://www.ariel.ac.il/cs/pf/tdror/courses/cpp

More information

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 מערכים שעור מס. 4 דרור טובי דר' כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1 למה מערכים? ברצוננו לאחסן בתוכנית ציוני בחינה כדי לחשב את ממוצע הציונים וסטיית התקן. נניח ש 30 סטודנטים לקחו

More information

Algorithms. Intro2CS week 5

Algorithms. Intro2CS week 5 Algorithms Intro2CS week 5 1 Computational problems A computational problem specifies an inputoutput relationship What does the input look like? What should the output be for each input? Example: Input:

More information

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen מבוא לתכנות בשפת C מצביעים והקצאה דינאמית כתובות של משתנים לכל משתנה כתובת של המקום שלו בזיכרון כבר ראינו: שם של מערך הוא למעשה הכתובת של התא הראשון )באינדקס 0( של המערך להזכירכם: תא של מערך הינו משתנה

More information

!"#$% &'($) *+!$ 0!'" 0+'&"$.&0-2$ 10.+3&2),&/3+, %&&/3+, C,-"!.&/+"*0.&('1 :2 %*10% *%7)/ 30'&. 0% /4%./

!#$% &'($) *+!$ 0!' 0+'&$.&0-2$ 10.+3&2),&/3+, %&&/3+, C,-!.&/+*0.&('1 :2 %*10% *%7)/ 30'&. 0% /4%./ 0!'" 0+'&"$ &0-2$ 10 +3&2),&/3+, #include int main() int i, sum, value; sum = 0; printf("enter ten numbers:\n"); for( i = 0; i < 10; i++ ) scanf("%d", &value); sum = sum + value; printf("their

More information

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num) 1 תבנית צבירה תבניות אלגוריתמיות לפעולות רקורסיביות תבנית צבירה לסדרת ערכים: סכום (סדרת ערכים) החזר את ערך הקצה + סכום (סדרת הערכים ללא ערך הקצה) דוגמא: פעולה המחזירה את סכום הספרות שבמספר שלם לא שלילי

More information

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA תרגול 7 מבוא לתכנות ב- JAVA תרגול 7 רקורסיה - הקדמה הגדרה רקורסיבית: חדר הוא מסודר אם צד שמאל שלו מסודר שלו מסודר. וצד ימין שיטת פתרון רקורסיבית: פתרון מופעים פשוטים יותר של בעיה בכדי לפתור את הבעיה המקורית רקורסיה

More information

קורס תכנות שיעור שישי: מחרוזות, מצביעים

קורס תכנות שיעור שישי: מחרוזות, מצביעים קורס תכנות שיעור שישי: מחרוזות, מצביעים מערכים אוסף סדור של משתנים מאותו סוג המשתנים נמצאים ברצף בזיכרון העברת מערך לפונקציה Define רקורסיה במערך מערכים דו מימדיים 2 מחרוזות מהי מחרוזת? רצף של תוים ייצוג

More information

Programming in C תרגול 8

Programming in C תרגול 8 Programming in C תרגול 8 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאת זיכרון דינאמית Malloc free מצביעים תאור הזיכרון של המחשב: ניתן לחשוב על זיכרון המחשב כעל רצף של תאים,

More information

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות טיפוסי השפה תוכנה 1 תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות טיפוסים יסודיים (פרימיטיביים): 8 טיפוסים מוגדרים בשפה שמיועדים להכיל ערכים פשוטים: מספרים שלמים: byte, short, int, long מספרים ממשיים: float,

More information

תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב Today Static vs. Dynamic binding Equals / hashcode String Immutability (maybe) 2 Static versus run-time

More information

Introduction to Programming in C תרגול 8

Introduction to Programming in C תרגול 8 Introduction to Programming in C תרגול 8 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאה דינמית מבנים תאור הזיכרון של המחשב: מצביעים ניתן לחשוב על זיכרון המחשב כעל רצף של תאים,

More information

C programming. conditional statements

C programming. conditional statements C programming Lecture 4: Logical expressions, conditional statements Based on slides designed by Shay Artsi,Aythan Avior,Gitit Rockstein and Saher Ismir for the department of Computer Science, Technion,

More information

Simple Web Service. namespace MyService { public class Service1 : System.Web.Services.WebService {

Simple Web Service. namespace MyService { public class Service1 : System.Web.Services.WebService { Simple Web Service WS פתיחת פרוייקט File New Project ASP.Net web service project - >http://localhost/webservice1 יצירת שירות המחשב חיבור וחילוק 2 מספרים : הטיפוסים הבסיסיים using System; איסוף וניהוף אוספי

More information

תרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> }

תרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> } נושאי התרגול: מה הן פונקציות הגדרת פונקציה,קריאה לפונקציה העברת ארגומנטים,החזרת ערך או void העברת משתנים פרימיטיביים ומערכים לפונקציה העמסה של פונקציות תרגול 4 פונקציות מוטיבציה לעיתים,אנו נזקקים לבצע

More information

תרגול מספר 3: מערכים

תרגול מספר 3: מערכים היום בתרגול:.1.2 תרגול מספר 3: מערכים מערך חד-מימדי: מה זה מערך ולמה צריך אותו? איך מגדירים? איך זה נראה בזכרון? דוגמאות לשימוש במערך חד-מימדי השוואה בין משתנה פרימיטיבי למשתנה שאינו פרימיטיבי מערך דו-מימדי:

More information

קורס תכנות כתובות בזיכרון כתובות בזכרון מצביעים וכתובות מצביעים וכתובות שיעור שביעי: מבנים, הקצאת זיכרון דינאמית האופרטור &

קורס תכנות כתובות בזיכרון כתובות בזכרון מצביעים וכתובות מצביעים וכתובות שיעור שביעי: מבנים, הקצאת זיכרון דינאמית האופרטור & כתובות בזיכרון קורס תכנות int x = 10; char c = a ; 10 784658 'a' 26537 שם x כתובת 784658 שיעור שביעי: מבנים, הקצאת זיכרון דינאמית 26537 c 1 הגדרת מצביע variable( )pointer כתובות בזכרון האופרטור & מחזיר

More information

<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp)

<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp) הנחיות כלליות: תאריך הבוחן: 10.5.2018 שם המרצה: מני אדלר,מיכאל אלחדד, ירון גונן מבחן בקורס: עקרונות שפות תכנות מס' קורס: 202-1-2051 מיועד לתלמידי: מדעי המחשב והנדסת תוכנה שנה: ב' סמסטר: ב' משך הבוחן: 2

More information

Engineering Programming A

Engineering Programming A Engineering Programming A תרגול 5 25.11.2012 מערכים חד-מימדיים )תזכורת( לדוגמא: מערך בשם Arr בגודל 8 שאיבריו מטיפוס int 3 7 5 6 8 1 23 16 0 1 2 3 4 5 6 7 ב - arr[0] ב יושב ערך שהוא המספר השלם 3 arr[1]

More information

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h>

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h> תכנות בסיסי בשפת C תוכנית ראשונה תוכנית ב - C מורכבת מאוסף פונקציות והגדרות טיפוסים. C איננה שפה object oriented כך שאין בה מושגים של מחלקה ואובייקט. נתחיל בתוכנית הראשונה המסורתית, זו המדפיסה הודעה יחידה

More information

קורס תכנות בשיעור הקודם למדנו על רקורסיה שיעור שישי: מערכים פונקציה רקורסיבית שאלה חישוב נוסחאות רקורסיביות בשפת C

קורס תכנות בשיעור הקודם למדנו על רקורסיה שיעור שישי: מערכים פונקציה רקורסיבית שאלה חישוב נוסחאות רקורסיביות בשפת C בשיעור הקודם למדנו על רקורסיה פתרנו את בעיית מגדלי הנוי בעזרת רקורסיה כלומר בעזרת פונקציה שקוראת לעצמה. רקורסיה מאפשרת לנו לפתור בעיה "גדולה" בעזרת פתרון של בעיות "קטנות" המרכיבות אותה. קורס תכנות שיעור

More information

תרגילים ופתרונות בשפת - C הסתעפויות

תרגילים ופתרונות בשפת - C הסתעפויות תרגילים ופתרונות בשפת - C הסתעפויות כתב וערך: שייקה בילו תרגיל - 1 כתוב תוכנית שתקבל מהמשתמש שלושה מספרים, ותציג את הגדול מביניהם על המסך. #include void main() int mis1, mis2, mis3, max; printf("please

More information

פתרון מוצע לבחינת מה"ט ב_שפת c מועד אביב תשע"ח, פברואר 8102 מחבר: מר שייקה בילו, מכללת אורט רחובות

פתרון מוצע לבחינת מהט ב_שפת c מועד אביב תשעח, פברואר 8102 מחבר: מר שייקה בילו, מכללת אורט רחובות פתרון מוצע לבחינת מה"ט ב_שפת c מועד אביב תשע"ח, פברואר 8102 מחבר: מר שייקה בילו, מכללת אורט רחובות שאלה מספר 1 התוכנית מגדירה חמישה משתנים שלמים: השלושה הראשונים הם שלושה מצביעים - *s *t,i. j ושלושה נוספים

More information

תכנות מתקדם בשפת C משתנים

תכנות מתקדם בשפת C משתנים תכנות מתקדם בשפת C משתנים 1 משתנים סוגי משתנים בשפת C ההבדלים בין סוגי המשתנים השונים 2 /* This program computes m to the power of n */ /* Assumptions: m is an integer; n is a positive integer */ #include

More information

מבוא לתכנות ב- JAVA תרגול 6

מבוא לתכנות ב- JAVA תרגול 6 מבוא לתכנות ב- JAVA תרגול 6 מה בתרגול )methods( פונקציות/שיטות ב- Java הגדרת פונקציה קריאה/הפעלה העברת ארגומנטים ערכי החזרה מבוא לפונקציות- שימוש חוזר בקוד נניח שבמהלך תוכנית נדרשתם לחשב את הסכום של המספרים

More information

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator מבוא למדעי המחשב 2017 תרגול 8 רשימה משורשרת כללית, Comparator בתרגול היום. LinkedList בניית ההכללה מ- LinkIntList תרגול המבנה ושימושיו ממשקים: Comparator Sorted Linked List ל- LinkedList ע"י שימוש ב- Comparator

More information

נוסחאון במיקרו בקר 8051 לכיתה י"ג נוסחאון בשפת ASM 51 מקום למדבקת נבחן אין להעביר את הנוסחאון לנבחן אחר המשך בעמוד 2

נוסחאון במיקרו בקר 8051 לכיתה יג נוסחאון בשפת ASM 51 מקום למדבקת נבחן אין להעביר את הנוסחאון לנבחן אחר המשך בעמוד 2 מדינת ישראל סוג הבחינה: גמר לבתי ספר לטכנאים ולהנדסאים נוסחאון במיקרו בקר 8051 משרד החינוך מועד הבחינה: אביב תשע"א, 2011 נספח לשאלונים: 711921 711911, אין להעביר את הנוסחאון לנבחן אחר מקום למדבקת נבחן

More information

עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter.

עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter. עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter. Type Inference System The Type Inference System is a Scheme Implementation of the algorithm for Type Checking and Inference

More information

תרשים המחלקות ותרשים העצמים

תרשים המחלקות ותרשים העצמים 1 תרשים המחלקות ותרשים העצמים חלק שלישי: ניתוח ועיצוב מערכות מידע באמצעות שימוש ב- UML ומתודולוגיית ה- Process )UP( Unified E1 3 E2 2 Outline UML Introduction Class Diagram Class Association Self association

More information

תוכנה 1. תרגול 1: סביבת העבודה ומבוא ל- Java

תוכנה 1. תרגול 1: סביבת העבודה ומבוא ל- Java תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1718b/ מתרגלים: ברית יונגמן )שעת קבלה: רביעי ב- 9:00 בתיאום מראש( שי גרשטיין )שעת קבלה: רביעי ב- 18:00,

More information

מבוא למדעי המחשב תרגול 13: עצים בינאריים

מבוא למדעי המחשב תרגול 13: עצים בינאריים מבוא למדעי המחשב תרגול 13: עצים בינאריים עצים בינאריים - הגדרה הגדרה: עץ בינארי הוא עץ ריק (בלי צמתים) או עץ המורכב משורש ושני תתי-עצים, הוא עץ בינארי. ימני ושמאלי, שכל אחד מהם תרגיל 1 עץ בינארי מסודר

More information

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes תוכנה 1 תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes class Outer { static class NestedButNotInner {... class Inner {... מחלקות מקוננות NESTED CLASSES 2 מחלקה מקוננת Class) )Nested

More information

Practical Session No. 14 Topological sort,amortized Analysis

Practical Session No. 14 Topological sort,amortized Analysis Practical Session No. 14 Topological sort,amortized Analysis Topological- Sort Topological sort Ordering of vertices in a directed acyclic graph (DAG) G=(V,E) such that if there is a path from v to u in

More information

הנכות 1 םוכיס לוגרת 13 1

הנכות 1 םוכיס לוגרת 13 1 תוכנה 1 סיכום תרגול 13 1 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public abstract int foo1(int i); int foo2(int i); The modifiers

More information

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13 1 תוכנה 1 תרגול מספר 13 ו- HashCode Equals עוד על טיפוסים מוכללים )Advanced Generics( חריגים )Exceptions( בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 ו- HASHCODE EQUALS 3 תזכורת: המחלקה Object package

More information

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13 1 2 תוכנה 1 תרגול מספר 13 ו- HashCode Equals עוד על טיפוסים מוכללים )Advanced Generics( ו- HASHCODE EQUALS חריגים )Exceptions( בית הספר למדעי המחשב אוניברסיטת תל אביב 1 3 4 package java.lang; תזכורת: המחלקה

More information

רזח יליגרתו םי יראני ב ם

רזח יליגרתו םי יראני ב ם מבוא למדעי המחשב עצים בינאריים ותרגילי חזרה תרגול 13: עצים בינאריים - הגדרה הגדרה: עץ בינארי הוא עץ ריק )בלי צמתים( או עץ המורכב משורש ושני תתי-עצים, הוא עץ בינארי. ימני ושמאלי, שכל אחד מהם שאלה עץ בינארי

More information

תוכנה 1 ומחלקות פנימיות

תוכנה 1 ומחלקות פנימיות תוכנה 1 Design Patterns ומחלקות פנימיות תרגול 11: 1 Design Patterns A general reusable solution to recurring design problems. Not a recipe A higher level language for design Factory, Singleton, Observer

More information

Computer Programming A תרגול 9

Computer Programming A תרגול 9 Computer Programming A תרגול 9 1 מטרת התרגול הקצאת זיכרון מבנים רשימות דינאמית ניהול הזיכרון בתוכנית עד כה כל המשתנים שראינו היו לוקאליים. משך הקיום של משתנים מקומיים הוא הזמן אשר הפונקציה בה הם נמצאים

More information

תכנות מונחה עצמים משחקים תשע"ו

תכנות מונחה עצמים משחקים תשעו move semantics 1 תכנות מונחה עצמים ופיתוח משחקים תשע"ו סמנטיקת ההעברה semantics( )Move move semantics 2 מטרה האצה של התוכניות, שיפור בביצועים על ידי חסכון בבנייה והעתקה של אובייקטים זמניים move semantics

More information

Amortized Analysis, Union-Find,

Amortized Analysis, Union-Find, Practical Session No. 13 Amortized Analysis, Union-Find, AMORTIZED ANALYSIS Refers to finding the average running time per operation, over a worst-case sequence of operations. Amortized analysis differs

More information

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות מערכים Array: A fixed-length data structure for storing multiple values of the same type Example: An array of odd numbers: Indices (start from 0) 0 1 2 3 4 5

More information

הנכות 1 םוכיס לוגרת 13 1

הנכות 1 םוכיס לוגרת 13 1 תוכנה 1 סיכום תרגול 13 1 בחינה באופק! הבחינה תכלול את כל הנושאים שכיסינו במהלך הסמסטר: כל ההרצאות כל תרגולים כל תרגילי בית חומר סגור שאלות אמריקאיות 2 קצת על מנשקים מנשק יכול להרחיב שירותים במנשק הם תמיד

More information

הקלחמ ה תמרב ת ונ וכ ת (static members ) יליזרב דהוא Java תפשב ם דקת מ תונכת ביבא ל ת תטיסרבינוא

הקלחמ ה תמרב ת ונ וכ ת (static members ) יליזרב דהוא Java תפשב ם דקת מ תונכת ביבא ל ת תטיסרבינוא ת כו נו ת ברמת ה מחלקה (static members) אוהד ברזילי תכנות מ תקד ם בשפת Java אוניברסיטת ת ל אביב static keyword שדות המוגדרים כ static מציינים כי הם מוגדרים ברמת המחלקה ולא ברמת עצם כל העצמים של אותה מחלקה

More information

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת תוכנה 1 תרגול 2: מערכים, לולאות והתמודדות עם שגיאות מערכים Array: A fixed-length data structure for storing multiple values of the same type Example from last week: An array of odd numbers: Indices (start

More information

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת תוכנה 1 תרגול 2: מערכים, לולאות והתמודדות עם שגיאות מערכים מערכים Array: A fixed-length data structure for storing multiple values of the same type Example from last week: An array of odd numbers: Indices

More information

תרגול 3 מערכים ופונקציות

תרגול 3 מערכים ופונקציות מבוא למדעי המחשב 2018 תרגול 3 מערכים ופונקציות מערכים מאפשרים עבודה עם מקבצים של נתונים פונקציות מאפשרות אבסטרקציה והאחדה של הקוד ראינו בהרצאה מערכים הצהרה, אתחול, גישה לאיברים במערך יצוג בזיכרון ובטבלת

More information

Practical Session - Heap

Practical Session - Heap Practical Session - Heap Heap Heap Maximum-Heap Minimum-Heap Heap-Array A binary heap can be considered as a complete binary tree, (the last level is full from the left to a certain point). For each node

More information

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 STATIC VS. DYNAMIC BINDING 3 Static versus Dynamic Binding public class Account

More information

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner Communication Networks (0368-3030) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University Allon Wagner Kurose & Ross, Chapter 3.5.5, 3.7 (5 th ed.) Many slides adapted from: J. Kurose

More information

שאלה 1 מהו הפלט של התוכנית הבאה:

שאלה 1 מהו הפלט של התוכנית הבאה: תרגול חזרה שאלה 1 מהו הפלט של התוכנית הבאה: public sttic int wht(int n) { int i; int sum=0; if(n == 0) return 1; for (i=0; i

More information

מבוא לתכנות ב- JAVA תרגול 5. Ipc161- practical session 5

מבוא לתכנות ב- JAVA תרגול 5. Ipc161- practical session 5 מבוא לתכנות ב- JAVA תרגול 5 Ipc161- practical session 5 מה בתרגול מערכים דו ממדיים )methods( פונקציות/שיטות ב- Java הגדרת פונקציה קריאה/הפעלה העברת ארגומנטים ערכי החזרה מערך דו ממדי מערך של מערכים חד ממדיים

More information

תרגול 3 מערכים ופונקציות

תרגול 3 מערכים ופונקציות מבוא למדעי המחשב 2017 תרגול 3 מערכים ופונקציות מערכים מאפשרים עבודה עם מקבצים של נתונים פונקציות מאפשרות אבסטרקציה והאחדה של הקוד ראינו בהרצאה מערכים הצהרה, אתחול, גישה לאיברים במערך יצוג בזיכרון ובטבלת

More information

מבוא למדעי המחשב תרגול 12 מחסנית )Stack( memoization

מבוא למדעי המחשב תרגול 12 מחסנית )Stack( memoization מבוא למדעי המחשב 2017 תרגול 12 מחסנית )Stack( memoization בתרגול היום מחסנית בדיקת איזון סוגריים בביטוי אריתמטי משולש Pascal לא רקורסיבי memoization דוגמאות שימוש: בעיית העודף תזכורת: מחסנית :)stack( מבנה

More information

תור שימושים בעולם התוכנה

תור שימושים בעולם התוכנה מבוא למדעי המחשב הרצאה : Queue, Iterator & Iterable תור מבנה נתונים אבסטרקטי תור שימושים בעולם התוכנה השימושים של תורים בעולם התוכנה מזכירים מאוד תורים במציאות: )VoIP( )YouTube( מקלדת שידור סרט באינטרנט

More information

Chapter 11.2 Linked lists ( )

Chapter 11.2 Linked lists ( ) Lecture of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds מערכים, מטריצות דלילות, ורשימות מקושרות חומר קריאה לשיעור זה Chapter. Linked lists ( ) Geiger & Itai, מערך מוגדר ע"י הפעולות

More information

ASP.Net Web API.

ASP.Net Web API. ASP.Net Web API 1 מה זה? Web API View בלבד ולא Data אותו מממש השרת והוא מחזיר לקליינט API הוא Web API הבקשה והתשובה הן בפרוטוקול Http\Https הקליינטים של Web API יכולים להיות רבים : אפשר להשתמש גם בMVC

More information

תוכנה 1 תרגול 2: מערכים ומבני בקרה

תוכנה 1 תרגול 2: מערכים ומבני בקרה תוכנה 1 תרגול 2: מערכים ומבני בקרה 2 Useful Eclipse Shortcuts Ctrl+1 quick fix for errors, or small refactoring suggestions Ctrl+SPACE code content assist (auto-completion) Auto completion for main create

More information

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים מבוא למדעי המחשב הרצאה 2: עצי חיפוש בינאריים תזכורת: עץבינארי בנוסףלרשימהמקושרת ומערך, הצגנומבנהנתונים קונקרטיחדש עץבינארי עץבינארימורכבמ: שורש תת-עץשמאלי תת-עץימני A B C D E F G 2 תזכורת: שורש ותתי-עצים

More information

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1 קורס תכנות שיעור תשיעי: רשימות מקושרות 1 הקצאה דינאמית של מערכים דו-ממדיים )לפחות( שלוש גישות אפשריות:.1 מערך של מערכים מצביעים לתוך מערך "גדול".2 3. מצביע יחיד למערך גדול 2 The Interface 3 (Simple) Usage

More information

הנכות 1 םוכיס לוגרת 13 1

הנכות 1 םוכיס לוגרת 13 1 תוכנה 1 סיכום תרגול 13 1 בחינה באופק! הבחינה תכלול את כל הנושאים שכיסינו במהלך הסמסטר: כל ההרצאות כל תרגולים כל תרגילי בית חומר סגור שאלות אמריקאיות 2 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים

More information

מבוא למדעי המחשב תרגול 5: לולאות ומערכים

מבוא למדעי המחשב תרגול 5: לולאות ומערכים מבוא למדעי המחשב תרגול 5: לולאות ומערכים תוכנייה לולאת while, do while, for מערכים מערכים דו ממדיים 2 לולאות 3 תזכורת: לולאת while גוף הלולאה מתבצע שוב ושוב כל עוד התנאי מתקיים int number; scanf( %d, &number);

More information

Exams questions examples

Exams questions examples Exams questions examples 1 Exam example 1. y - x what נק' ( לפניך הפעולה הרקורסיבית מקבלת כפרמטרים שני מספרים שלמים ו 10 )? מה יהיה הפלט כתוצאה מזימון הפעולה what public static int what(int x, int y) if(x

More information

הפלט אחרי הביצוע של ההוראה :what3(root)

הפלט אחרי הביצוע של ההוראה :what3(root) שאלה )18 1 נקודות( סעיף א. )11 נקודות( הפלט אחרי הביצוע של ההוראה :what3(root) 15 10 20 26 12 18 25 3 28 14 13 סעיף ב. )3 נקודות( הפונקציה what1 מוסיפה את האיבר node בסוף הרשימה ומעדכנת את ראש הרשימה *ph

More information

הנכות 1 םוכיס לוגרת 14 1

הנכות 1 םוכיס לוגרת 14 1 תוכנה 1 סיכום תרגול 14 1 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public abstract int foo1(int i); int foo2(int i); The modifiers

More information

Smart Pointers Nir Adar

Smart Pointers Nir Adar 7.1.2005 גירסה 1.00 Smart Pointers מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך, וכן לנכונות

More information

מבוא לשפת סי סוגי לולאות שבוע שעבר... תוכנייה. לולאת while דוגמא: קליטת מספר חיובי ד'/כסלו/תשע "ב. משפטי if משפטי switch סוגי לולאות בשפת C דוגמאות

מבוא לשפת סי סוגי לולאות שבוע שעבר... תוכנייה. לולאת while דוגמא: קליטת מספר חיובי ד'/כסלו/תשע ב. משפטי if משפטי switch סוגי לולאות בשפת C דוגמאות מבוא לשפת C תירגול 6: לולאות שבוע שעבר משפטי if משפטי switch 2 תוכנייה סוגי לולאות סוגי לולאות בשפת C ברמת התקשורת עם המחשב מאפשר לחזור שוב ושוב על אותה סדרת פעולות ללא שיכפול קוד ברמת התקשורת האנושית

More information

עמוד 1 (תאריך ( âùéä ער äìàù בכל השאלות ניתן להניח שהקלט תקין. 100 íåëñ חורף :

עמוד 1 (תאריך ( âùéä ער äìàù בכל השאלות ניתן להניח שהקלט תקין. 100 íåëñ חורף : עמוד 1 מבוא למדעי המחשב מ' 234114 מבוא למדעי המחשב ח' 234117 מבחן מועד א', סמסטר חורף תשס"ב (תאריך ( 29.1.03 שם משפחה שם פרטי מס' סטודנט âùéä ער äìàù 15 1 15 2 16 3 18 4 16 5 20 6 100 íåëñ חומר עזר: אין

More information

פרק 15 טיפוס חדש: מבנים שימוש במבנים שימוש במבנים שימוש במבנים

פרק 15 טיפוס חדש: מבנים שימוש במבנים שימוש במבנים שימוש במבנים פרק 15 ב- C מבנים טיפוס חדש: מבנים 1 מבנה (structure) הוא טיפוס מורכב בשפת C (בניגוד לטיפוס בסיסי). זהו טיפוס שמיועד לאיחוד קבוצת משתנים תחת שם אחד. משתנים אלו נקראים השדות של המבנה, והם יכולים להיות מטיפוסים

More information

פתרון מוצע לבחינה בשפת C של מה"ט מועד אביב תשע"ז, פברואר 2017 מחבר: מר עסאקלה שאדי, מכללת אורט בראודה

פתרון מוצע לבחינה בשפת C של מהט מועד אביב תשעז, פברואר 2017 מחבר: מר עסאקלה שאדי, מכללת אורט בראודה פתרון מוצע לבחינה בשפת C של מה"ט מועד אביב תשע"ז, פברואר 2017 מחבר: מר עסאקלה שאדי, מכללת אורט בראודה שאלה מספר 1 נתונה התכנית הבאה בשפת C: #include #define SUM_OF_3(x,y,z) x+y+z #define AVRG_OF_3(x,y,z)

More information

מבוא לתכנות ב- JAVA מעבדה 4

מבוא לתכנות ב- JAVA מעבדה 4 מבוא לתכנות ב- JAVA מעבדה 4 מה בתרגול מערכים מחרוזות מערך חד מימדי מערך הוא מבנה המחזיק סדרה של איברים מאותו טיפוס גודל המערך הוא קבוע )נקבע בעת יצירת המערך( הגישה לכל איבר היא באמצעות אינדקס למה לי מערך?

More information

Programming for Engineers in Python

Programming for Engineers in Python Programming for Engineers in Python Lecture 9: Sorting, Searching and Time Complexity Analysis Autumn 2011-12 1 Lecture 8: Highlights Design a recursive algorithm by 1. Solving big instances using the

More information

Programming for Engineers in Python

Programming for Engineers in Python Programming for Engineers in Python Lecture 9: Sorting, Searching and Time Complexity Analysis Autumn 2011-12 1 Lecture 8: Highlights Design a recursive algorithm by 1. Solving big instances using the

More information

Tutorial 10. Introduction to C++ שימו

Tutorial 10. Introduction to C++ שימו Introduction to ++ שימו תרגול זה אינו התרגול הרישמי של הקורס. הוא מבוסס על חוברת התרגולים אך מכיל שינויים, הסברים נוספים ודוגמאות שונות או נוספות. + + תוכנ ית רא שונה ב הכרו ת עם + + תרגול // First ++

More information

Nir Adar

Nir Adar שפת Java למתכנתי ++C - חלק שני מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך, וכן לנכונות

More information

חוברת תרגילים לתרגול יסודות התכנות

חוברת תרגילים לתרגול יסודות התכנות פעולות קלט ופלט חוברת תרגילים לתרגול יסודות התכנות קלוט 3 מספרים. סכם אותם, הצג את שלושתם ואת תוצאת הסיכום. int num1, num2, num3,sum; Console.WriteLine("please enter 3 numbers"); num1 = int.parse(console.readline());

More information

ENUMERATED TYPES טיפוסי מנייה שחר מעוז תוכנה 1 בשפת ג'אווה אוניברסיטת תל אביב

ENUMERATED TYPES טיפוסי מנייה שחר מעוז תוכנה 1 בשפת ג'אווה אוניברסיטת תל אביב ENUMERATED TYPES טיפוסי מנייה שחר מעוז אוניברסיטת תל אביב ENUMERATED TYPES package cards.domain; public class PlayingCard { טיפוסים שכל מופעיהם קבועים וידועים מראש שכיחים מאוד בעולם התוכנה: // pseudo enumerated

More information

תרגול 6 רקורסיה ותכנות מונחה עצמים

תרגול 6 רקורסיה ותכנות מונחה עצמים מבוא למדעי המחשב 2017 תרגול 6 רקורסיה ותכנות מונחה עצמים מבוא למדעי המחשב 1 ראינו בהרצאה רקורסיה תכנות מונחה עצמים: מחלקה ואובייקט שדות, בנאים ושיטות מימוש מערך דינאמי של ראשוניים בתרגול היום רקורסיה הדפסת

More information

CSS תגיות עיצוב - Document Level style sheet. הגדרת עיצוב inline { ;ערך : תכונה ;ערך :תכונה } שם-התגית CSS תכנות בסביבת האינטרנט 1

CSS תגיות עיצוב - Document Level style sheet. הגדרת עיצוב inline { ;ערך : תכונה ;ערך :תכונה } שם-התגית CSS תכנות בסביבת האינטרנט 1 תכנות בסביבת האינטרנט 1 תגיות עיצוב - הגדרות עיצוב לגופן, צבע, יישור וכד'. קיימות חמש רמות לכתיבה והוספת עיצובים:.1 style - In Line עיצוב ברמת התגית..2 sheet - Document Level style עיצוב ברמת המסמך. 3.

More information

סטודנטים יקרים הפתרונות מוגשים בסרטוני וידאו המלווים בהסבר קולי, כך שאתם רואים את התהליכים בצורה מובנית, שיטתית ופשוטה, ממש כפי שנעשה בשיעור פרטי.

סטודנטים יקרים הפתרונות מוגשים בסרטוני וידאו המלווים בהסבר קולי, כך שאתם רואים את התהליכים בצורה מובנית, שיטתית ופשוטה, ממש כפי שנעשה בשיעור פרטי. סטודנטים יקרים לפניכם ספר תרגילים בקורס ארגון ותכנות המחשב (שפת אסמבלי). הספר הוא חלק מפרויקט חדשני וראשון מסוגו בארץ במקצוע זה, המועבר ברשת האינטרנט.On-line הקורס באתר כולל פתרונות מלאים לספר התרגילים.

More information

קורס תכנות רשימה מקושרת דוגמה: חיפוש מעבר על רשימה דוגמא: שחרור רשימה מקושרת דוגמא: הוספת אברים שלא בהתחלה

קורס תכנות רשימה מקושרת דוגמה: חיפוש מעבר על רשימה דוגמא: שחרור רשימה מקושרת דוגמא: הוספת אברים שלא בהתחלה רשימה מקושרת רשימה היא אוסף סדור של ערכים פעולות רשימה לעומת מערך קורס תכנות שיעור עשירי: מיונים, חיפושים, קצת ניתוח זמני ריצה, קצת תיקון טעויות ועוד על רשימות 3 5 7 9 typedef struct node int data; struct

More information

גירסה

גירסה גירסה 1.00 29.02.2004 לולאות בשפת C מסמך זה הורד מהאתר.http://underwar.livedns.co.il אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש

More information

הוראות חיבור e-port בפרוטוקול Art-Net למערכות תאורה שונות

הוראות חיבור e-port בפרוטוקול Art-Net למערכות תאורה שונות 30.06.2014 הוראות חיבור e-port בפרוטוקול Art-Net למערכות תאורה שונות המסמך נכתב ונערך ע"י רונן בן-הרוש עבור חברת דנאור מערכות תיאטרון ואולפנים בע"מ. http://www.danor.com הבדיקות נעשו באולם רובינא, בתיאטרון

More information

תרגול 12. Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים

תרגול 12. Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים תרגול 12 Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים ספרית התבניות הסטנדרטית קיימת בכל מימוש של ++C מכילה אוספים (Containers) ואלגוריתמים. משתמשת בתבניות :(templates) אוספי הנתונים

More information

גיליון תשובות מספר נבחן: סעיף ג (10 נקודות) הגדרת בטיחות הינה שמירה על האינווריאנטה של האובייקטים במהלך ההרצה.

גיליון תשובות מספר נבחן: סעיף ג (10 נקודות) הגדרת בטיחות הינה שמירה על האינווריאנטה של האובייקטים במהלך ההרצה. גיליון תשובות מספר נבחן: (30 נקודות) שאלה 1 סעיף א (15 נקודות) remove() המתודה remove() גם משנה את מצב האובייקט,(command) וגם מחזירה ערך.(query) על פי עקרונות העיצוב שלמדנו בכיתה יש להפריד שאילתות מפקודות.

More information

Important Java terminology

Important Java terminology 1 Important Java terminology The information we manage in a Java program is either represented as primitive data or as objects. Primitive data פרימיטיביים) (נתונים include common, fundamental values as

More information

עצים. מבני נתונים Iterators רשימות מקושרות עצים "רגילות" רקורסיביות

עצים. מבני נתונים Iterators רשימות מקושרות עצים רגילות רקורסיביות עצים 1 מבני נתונים Iterators רשימות מקושרות "רגילות" רקורסיביות עצים 2 1 עצים בינאריים סריקות על עצים עצי חיפוש מימוש Iterators לסריקה 3 עץ בינארי הינו מבנה נתונים המייצג עץ מושרש )כלומר עם שורש( עץ בינארי

More information

Enumerated Types טיפוסי מנייה בית הספר למדעי המחשב אוניברסיטת תל אביב

Enumerated Types טיפוסי מנייה בית הספר למדעי המחשב אוניברסיטת תל אביב Enumerated Types טיפוסי מנייה בית הספר למדעי המחשב אוניברסיטת תל אביב Enumerated Types טיפוסים שכל מופעיהם קבועים וידועים מראש שכיחים מאוד בעולם התוכנה: package cards.domain; public class PlayingCard {

More information

9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס :

9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס : 9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס : 1 בהרצה : הוספת פריט רשימת פריטים ההכנה לעבודה : 1. להוסיף שתי טבלאות למאגר טבלת orders וטבלת.orderDetail

More information

- MEAN Stack חזרה. MongoDB - as the database Express - as the web framework AngularJS - as the frontend framework NodeJS- as the server platform

- MEAN Stack חזרה. MongoDB - as the database Express - as the web framework AngularJS - as the frontend framework NodeJS- as the server platform הדר פיקאלי תשע"ו - 2016 - MEAN Stack חזרה בניית web applications כרוכה בשימוש בטכנולוגיות וכלים שונים, להתמודדות עם: מסד נתונים, פעולות בצד השרת, טיפול בצד הלקוח והצגה של הנתונים. מהו?MEAN "MEAN is a fullstack

More information

תוכנה 1 * לא בהכרח בסדר הזה

תוכנה 1 * לא בהכרח בסדר הזה תוכנה 1 תרגול 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה 2 מנשקים מנשקים - תזכורת מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות של מתודות )חתימות(. מימוש דיפולטיבי

More information

הוראות לנבחן גמר לבתי ספר לטכנאים ולהנדסאים סמל השאלון: תכנות מערכות ושפת סף ההנחיות בשאלון זה מנוסחות בלשון זכר, אך מכוונות לנבחנות ולנבחנים כאחד.

הוראות לנבחן גמר לבתי ספר לטכנאים ולהנדסאים סמל השאלון: תכנות מערכות ושפת סף ההנחיות בשאלון זה מנוסחות בלשון זכר, אך מכוונות לנבחנות ולנבחנים כאחד. גמר לבתי ספר לטכנאים ולהנדסאים סוג הבחינה: מדינת ישראל אביב תשס"ז, 2007 מועד הבחינה: משרד החינוך 714001 סמל השאלון: תכנות מערכות ושפת סף הוראות לנבחן א. משך הבחינה: ארבע שעות. ב. מבנה השאלון ומפתח ההערכה:

More information